home *** CD-ROM | disk | FTP | other *** search
/ Merciful 2 / Merciful - Disc 2.iso / software / k / kids7.dms / kids7.adf / forest.amos / forest.amosSourceCode < prev    next >
AMOS Source Code  |  1992-10-04  |  6KB  |  176 lines

  1. Dim QUIZ$(10),GOA$(10),WRONG1$(10),WRONG2$(10),COUNT(10)
  2. Global LIP,BON,TL,CW1$,CW2$,CW3$,CW4$,CW5$,QUIZ$(),GOA$(),WRONG1$(),WRONG2$(),COUNT()
  3. Global IX,MZ,ANSW,NAME$,SCORE,LEVEL,XX$,ANS1$,ANS2$,ANS3$,QSET,FLW,FLY,FLOCK,XTREE
  4. STUP : PUSS
  5. Procedure PUSS
  6.    Do 
  7.       PICK
  8.       Repeat 
  9.          TEX
  10.       Until MZ=ANSW
  11.       Exit If FLOCK=10
  12.       QSET=0
  13.       DAVE
  14.       UPO
  15.    Loop 
  16.    FOUND
  17.    End 
  18. End Proc
  19. Procedure STUP
  20.    Colour Back $70 : Music 1 : Screen Close 0 : Get Fonts 
  21.    STRIPPER
  22.     Extension_5_0120 "kids-7:bits/pic.abk",10 : UPO : Channel 1 To Bob 1 : Limit Mouse 129,152 To 433,219
  23.    CW1$="A 0,(1,10)(2,10)(3,10)"
  24.    CW2$="A 0,(4,10)(5,10)(6,10); M 0,-30,50; M 78,0,50;"
  25.    CW3$="A 0,(1,10)(2,10)(3,10);  M  -160,0,50;"
  26.    CW4$="A 0,(4,10)(5,10)(6,10)" : CW4$=CW4$+"L: M 5,0,50; M -5,0,50; P J L"
  27.    CW5$="A 0,(4,10)(5,10)(6,10); M 0,12,50; M 164,0,50"
  28.    Screen Open 1,320,32,32,Lowres : Screen Hide 1 : Get Palette 0 : Cls 0 : Set Font 3
  29.    Ink 5,31 : Screen 0 : FLW=7 : FLY=290 : FLOCK=0
  30.    If LEVEL=1 Then WLT$="quiz1.dat"
  31.    If LEVEL=2 Then WLT$="quiz2.dat"
  32.    If LEVEL=3 Then WLT$="quiz3.dat"
  33.    Open In 1,"KIDS-7:bits/"+WLT$
  34.    For N=1 To 10 : Input #1,QUIZ$(N),GOA$(N),WRONG1$(N),WRONG2$(N) : Next N : Close 1 : Wait 10
  35.    For M=1 To 10 : COUNT(M)=0 : Next M
  36.    For N=1 To 10
  37.       Repeat 
  38.          I=Rnd(9)+1 : NUG=False
  39.          For M=1 To 10
  40.             If COUNT(M)=I Then NUG=True
  41.          Next M
  42.       Until NUG=False
  43.       COUNT(N)=I
  44.    Next N
  45.    IX=1 : QSET=0
  46. End Proc
  47. Procedure PICK
  48.    Inc FLOCK
  49.    For N=1 To FLOCK
  50.       XTREE=Rnd(220)+64 : FLY=Rnd(30)+250 : FLW=Rnd(1) : If FLW=0 Then FLW=7 Else FLW=16
  51.       Paste Bob XTREE,FLY,FLW
  52.    Next N
  53.    CHAP
  54.    Screen Show 0
  55. End Proc
  56. Procedure DAVE
  57.    Sam Play 14,3,9000
  58.    Fade 3,$70,$70,$70,$70,$70,$70,$70,$70,$70,$70,$70,$70,$70,$70,$70,$70,$70,$70,$70,$70,$70,$70,$70,$70,$70,$70,$70,$70,$70,$70,$70,$70,
  59.    Wait 22 : Sam Play 14,3,9000 : Wait 22 : Reserve Zone : Amal Off : Bob Off : Screen Close 0 : Inc IX
  60.    Bob Off 15
  61. End Proc
  62. Procedure UPO
  63.    Unpack 10 To 0 : Screen Hide 0 : Screen Display 0,124,-32,, : Double Buffer 
  64.    Reserve Zone 3
  65.    Set Zone 1,19,228 To 37,251
  66.    Set Zone 2,138,200 To 157,224
  67.    Set Zone 3,268,198 To 283,223
  68. End Proc
  69. Procedure CHAP
  70.    Bob 1,150,220,1 : Amal 1,CW4$ : Amal On 1
  71. End Proc
  72. Procedure GROB
  73.    Screen 0
  74.    Repeat 
  75.       MK=Mouse Key : MZ=Mouse Zone
  76.    Until MK>0 and MZ>0
  77.    PBV=2000
  78.    For N=3 To 6
  79.       PBV=PBV+2000
  80.       Bob N,158,,12 : Sam Play 6,2,PBV : Wait 2
  81.       Bob N,158,,13 : Sam Play 9,2,PBV : Wait 4
  82.       Bob N,158,,14 : Sam Play 6,2,PBV : Wait 6
  83.       Bob Off N
  84.    Next N
  85.    If MZ=1
  86.       Get Bob 15,8,203 To 36,280 : Amal Off 1
  87.       Bob 15,8,203,15 : Wait Vbl : Amal 1,CW3$ : Amal On 1 : While Chanmv(1) : Wend 
  88.       If MZ<>ANSW
  89.          Amal Off 1 : Sam Play 9,1,10000 : Wait 10 : Sam Play 6,1,7000 : Wait 20
  90.          C$="A 0,(4,10)(5,10)(6,10);  M  160,0,50;" : Amal 1,C$
  91.          Amal On 1 : While Chanmv(1) : Wend 
  92.       End If 
  93.    End If 
  94.    If MZ=2
  95.       Get Bob 15,229,182 To 275,241 : Amal Off 1
  96.       Bob 15,229,182,15 : Wait Vbl : Amal 1,CW2$ : Amal On 1 : While Chanmv(1) : Wend 
  97.       If MZ<>ANSW
  98.          Amal Off 1 : Sam Play 9,1,10000 : Wait 10 : Sam Play 6,1,7000 : Wait 20
  99.          C$="A 0,(1,10)(2,10)(3,10);  M -78,0,50; M 0,30,50;" : Amal 1,C$
  100.          Amal On 1 : While Chanmv(1) : Wend 
  101.       End If 
  102.    End If 
  103.    If MZ=3
  104.       Get Bob 15,315,234 To 345,288 : Amal Off 1
  105.       Bob 15,315,234,15 : Wait Vbl : Amal 1,CW5$ : Amal On 1 : While Chanmv(1) : Wend 
  106.       If MZ<>ANSW
  107.          Amal Off 1 : Sam Play 9,1,10000 : Wait 10 : Sam Play 6,1,7000 : Wait 20
  108.          C$="A 0,(1,10)(2,10)(3,10);  M -164,0,50; M 0,-12,50" : Amal 1,C$
  109.          Amal On 1 : While Chanmv(1) : Wend 
  110.       End If 
  111.    End If 
  112. End Proc
  113. Procedure TEX
  114.    TX$=QUIZ$(COUNT(IX)) : BON=8
  115.    STUN
  116.    RIGHT[TX$] : TXP=((320-TL)+10)/2
  117.    For N=330 To 300 Step -1
  118.       Bob 3,TXP,N,8 : Wait Vbl 
  119.    Next N
  120.    TAX
  121.    GROB
  122. End Proc
  123. Procedure TAX
  124.    If QSET=0
  125.       ANS1$=GOA$(COUNT(IX)) : ANS2$=WRONG1$(COUNT(IX)) : ANS3$=WRONG2$(COUNT(IX))
  126.       R=Rnd(5)+1
  127.       If R=1 : ANSW=1 : End If 
  128.       If R=2 : Swap ANS2$,ANS3$ : ANSW=1 : End If 
  129.       If R=3 : Swap ANS3$,ANS1$ : Swap ANS2$,ANS1$ : ANSW=3 : End If 
  130.       If R=4 : Swap ANS1$,ANS3$ : ANSW=3 : End If 
  131.       If R=5 : Swap ANS1$,ANS3$ : Swap ANS3$,ANS2$ : ANSW=2 : End If 
  132.       If R=6 : Swap ANS1$,ANS2$ : ANSW=2 : End If 
  133.       ANS1$="Path 1 = "+ANS1$ : ANS2$="Path 2 = "+ANS2$ : ANS3$="Path 3 = "+ANS3$
  134.       QSET=1
  135.    End If 
  136.    STUN : BON=9 : RIGHT[ANS1$] : TXP=(320-TL)/2
  137.    For N=1 To 80 Step 4
  138.       Bob 6,TXP,N,BON : Wait Vbl 
  139.    Next N
  140.    STUN : BON=10 : RIGHT[ANS2$] : TXP=(320-TL)/2
  141.    For N=1 To 112 Step 4
  142.       Bob 5,TXP,N,BON : Wait Vbl 
  143.    Next N
  144.    STUN : BON=11 : RIGHT[ANS3$] : TXP=(320-TL)/2
  145.    For N=1 To 144 Step 4
  146.       Bob 4,TXP,N,BON : Wait Vbl 
  147.    Next N
  148. End Proc
  149. Procedure STUN
  150.    Screen 1 : Paste Icon 0,0,1
  151.    For N=16 To 320 Step 16
  152.       Paste Icon N,0,2
  153.    Next N
  154. End Proc
  155. Procedure RIGHT[TX$]
  156.    Screen 1 : Text 10,20,TX$ : TL=Text Length(TX$) : Paste Icon TL+10,0,3
  157.    Get Bob 1,BON,0,0 To TL+20,32 : Wait Vbl : Screen 0
  158. End Proc
  159. Procedure FOUND
  160.    BON=8 : TX$=" Score:"+Str$(SCORE) : STUN : RIGHT[TX$]
  161.    For N=330 To 300 Step -1
  162.       Bob 3,50,N,8 : Wait Vbl 
  163.    Next N
  164.    Wait 100 : Amal Off : Bob Off : Reserve Zone : Limit Mouse 
  165.    Dim STORE(31) : For N=0 To 31 : STORE(N)=Colour(N) : Next N
  166.    Fade 3,$BBB,$BBB,$BBB,$BBB,$BBB,$BBB,$BBB,$BBB,$BBB,$BBB,$BBB,$BBB,$BBB,$BBB,$BBB,$BBB,$BBB,$BBB,$BBB,$BBB,$BBB,$BBB,$BBB,$BBB,$BBB,$BBB,$BBB,$BBB,$BBB,$BBB,$BBB,$BBB,
  167.    Colour Back $BBB : Wait 45 : Cls 21 : For N=0 To 31 : Colour N,STORE(N) : Next N : Wait 2
  168.    Cls 21 : Ink 5,21
  169.    A$=NAME$+"|"+Str$(LEVEL)+"/"+XX$+"\"+Str$(SCORE) : Command Line$=A$
  170.    Run "KIDS-7:cards.amos"
  171. End Proc
  172. Procedure STRIPPER
  173.    A$=Command Line$ : A=Instr(A$,"|") : B=Instr(A$,"/") : C=Instr(A$,"\") : L=Len(A$)
  174.    NAME$=Left$(A$,A-1) : L$=Mid$(A$,A+1,B-A-1) : LEVEL=Val(L$)
  175.    XX$=Mid$(A$,B+1,C-B-1) : S$=Right$(A$,L-C) : SCORE=Val(S$) : Mid$(XX$,3,1)="."
  176. End Proc